1. Field of the Invention
This invention relates to a communication system (i.e., internet) that allows a host to be moved from a first point on the internet to a second point on the internet. The second point may be coupled to an entirely different local network (i.e., intranet) than the intranet on which the first point is coupled. The present invention allows the host to register its routing identifier to the second point, where any data sent to the host previously coupled to the first point will get automatically rerouted to the second point.
2. Description of the Related Art
The following descriptions and examples are not admitted to be prior art by virtue of their inclusion within this section.
A communication system is generally regarded as an interconnected set of subnetworks or subnets. The system can extend over many localized subnets as an intranet, and can extend globally across multiple subnets or intranets to form an internet. One important purpose of an internet is the capability of sending data between two hosts that may reside on different intranets. The data can be sent to almost anywhere around the world. An intranet can be referred to as a network of devices that perform routing or other traffic-forwarding functions within a single autonomous system. An internet connects the various intranets and allows communication within and between autonomous systems. An autonomous system is, therefore, a collection of one or more networks under a common administrator that share a common routing strategy, or “domain.”
A host is any device which can send and receive data and, as used herein, is generally found at the end node of an autonomous system. Typical hosts include such devices as terminals, personal computers, printers, personal digital assistants (“PDAs”), or any device which can send and receive data in any form whatsoever.
Data can be sent in numerous ways. A popular mechanism for transferring data across an internet involves placing the data in a packet. The packet can be switched and sent across different routes of the network at the same time, and then reassembled at the proper destination host. In order to ensure the packets are properly received, certain layers of the Open System Interconnect (“OSI”) model of the International Standards Organization protocol stack will wrap the data before the data is sent across the network. For example, TCP can divide data into segments which are then placed into, for example, Internet Protocol (“IP”) datagrams having a header which includes the IP address of the originating and receiving hosts. It is not until the packet has been wrapped possibly numerous times, at the network layer and the data/physical layers, will the TCP be forwarded across the network.
The destination address of a wrapped packet are directed across the internet using packet processors and routing tables accessible to the packet processors. The packet processors generally found within routers function to open the IP addressed packet and read the IP destination address. The mechanism for determining the best route in which to send the packet involves comparing the destination address against an internal database called the routing table. Routing tables are generally dynamic in nature and can accommodate a multiplicity of nodes and/or forwarding modules of a rather large internet. Each node can have its own unique IP identification number, or can have a lower layer identification number (address), such as the popular Ethernet addresses. As the internet is reconfigured with new routers, bridges, switches, and/or gateways, the routing tables can dynamically change to ensure an optimal transfer of data.
As a precept to the routing function, hosts which are connected to the internet must have a unique identification number. In this manner, a user being targeted to receive data will know that the data was sent from a particular user (source address), and the user which sourced the data will know where to send the data (i.e., to the unique destination address). Keeping track of who is sending data and where the data is to be sent is the function of the IP address. A packet may, therefore, contain both a destination field and a source field, into which the destination IP address and source IP address are placed.
Internet Protocol Version 4 (“IPv4”) specification has established that the source and destination addresses be 32 bits in length. Thus, the destination field contains 32 bits which identifies the IP address of the targeted host, and the source field also contains 32 bits which identifies the source host. FIGS. 1 and 2 help illustrate an IPv4 routing mechanism. It is understood, however, while 32 bits are used in the IPv4 specification, the dramatic increase in IP addresses has required larger source and destination fields, thus, leading to the IPv6 specification containing 128 bits in the source and destination fields. For sake of simplicity, however, a 32-bit field is shown in the examples of FIGS. 1 and 2.
FIG. 1 illustrates an internet 10 containing multiple intranets 12a, 12b, and 12c. Each intranet 12 has its own addressing domain and, thus, can be considered as having its own stand-alone network. Intranet 12a can, therefore, be considered as the first network, intranet 12b as the second network, and intranet 12c as the third network, each of which are interconnected by communication line 14. A main advantage of internet 10 is the ability to communicate between host 16 and host 18. For example, host 16 can send data as one or more packets of information. As the data is presented for transmission, the source address of host 16 is placed in the source field and the destination address of host 18 is placed in the destination field. There may be multiple routers, switches, gateways, etc. 20 (devices 20a, 20b, 20d, 20e, 20i, 20j, and 20k) placed between host 16 and host 18. As the data begins at host 16, an upper level address (i.e., IP address) is placed on the packet corresponding to the IP identifier of host 16. The destination address (IP identifier) corresponding to host 18 is also placed on the packet. As the packet traverses dissimilar addressing domains, the packet may be further wrapped with lower OSI addressing layers depending on the data/physical layer configurations of those addressing domains. Data link/physical link destination address can be further wrapped upon the upper layer IP destination address. For example, a destination IP address of 33.0.10.25 can be placed on the packet, along with possibly a lower layer, 48-bit Ethernet address corresponding to host 18. Placing the lower addresses typically occurs when the packet enters a new domain, such as addressing domain 3, shown in FIG. 1.
In an effort to reduce the routing table size in each of the various routers or switches 20, not all 32 bits need be examined, and some of the bits can be masked as “don't care” bits. As shown in FIG. 2, the IPv4 specification can involve classed or classless addressing. For example, class C IPv4 addresses have an 8-bit network ID field and a 24-bit host ID field. Class B addresses have a 16-bit network ID field and a 16-bit host ID field. Class A addresses have a 24-bit network ID field and an 8-bit host ID field. Segmenting the host destination fields can oftentimes be inefficient if, for example, a user is barely within the upper class range, resulting in his/her inefficient use of the IP addresses allocated to that user.
Referring to FIGS. 1 and 2, three networks are illustrated, each having its own unique network identifier. For example, identifier for network 1 is 168.10, identifier for network 2 is 32.0, and identifier for network 3 is 33.0. While the network identification field contains the various addresses of each of the autonomous intranets, the host identification field contains the unique addresses of each host within a given intranet. For example, host 18 within network 3 can have a host address of 10.25. When addressing host 18, both the full network address 33.0 and host address 10.25 are used, with the network address being used first with the host address being masked during the original compare operation within, for example, a content-addressable memory (“CAM”) containing the routing tables. Thus, a classed internet or inter-domain routing mechanism involves partially masking the destination address, as shown by reference numeral 30 in FIG. 2. In this manner, the intranet can be quickly found within the memory array and, thereafter, the particular host within that intranet can be found by masking the network address and performing compare operations on only the destination host field.
Due to the inefficiencies of using a classed routing scheme, a classless scheme referred to as “classless inter-domain routing” (“CIDR”) has arisen. According to CIDR, a floating boundary exists between the network field and the host field. The network field indicates the “prefix length” of the CIDR address. A technique known as longest matching prefix is applied, with masking cells of the CAM memory being set to incrementally mask bits stored in the memory cell during the compare operation. If there are multiple matches, the matching data within the memory cell with the lowest numerical CAM address (the longest matching prefix) is provided. This address is, therefore, the address at which the destination host 18 resides.
Regardless of whether classed or classless routing is employed, the basic routing concept remains: to route data to the physical address at which the destination host resides. If host 18 is moved from one location on the internet to another location on the internet, as shown by arrow 34 in FIG. 1, the routing tables must be updated. If not, the routers will attempt to send the data to the location at which host 18 previously resided. When the IP identifier of host 18 is not present at that location, the packet will most likely be dropped and no communication will ensue. A problem, therefore, exists whenever a user of host 18 disconnects host 18 and goes to another node on the internet and reconnects his/her host. If the user wants to resume normal communication with other hosts on the internet, conventional routing mechanisms do not allow for non-notified roaming of hosts. In other words, each host is assigned a unique IP identifier based on where that host is connected in the internet. Thus, host 18 may have been connected at a first point attributable to intranet 12c having a network and host address of 33.0.10.25. Unless reconfigured, when host 18 moves from intranet 12c and is connected to intranet 12b, the network and host identifiers will move with host 18. Thus, when routing ensues to host 18, the non-reconfigured routing tables will not be able to find host 18 placed at the second point within intranet 12b since routing must first go to the network address 32.0, and the destination network address 33.0 of host 18 at the second point simply is not the same as 32.0. Each time a host is moved from one point to another, the user must notify a network administrator, who then updates the routing tables and performs an address resolution protocol (“ARP”) which maps the network address to the media access controller (“MAC”) addresses of the first and second points on the network. Unfortunately, each time a user removes his/her host from one point and connects it to another point, the user's mobility is severely limited.
It would be desirable to derive a mechanism which overcomes this lack of mobility, and which can allow a user to couple his/her host, for example, to a network within one company or organization and, thereafter, disconnect his/her host and reconnect the host to another network within another company or organization maybe in some other portion of the country or world. All of this beneficially taking place without the user having to inform the administrator to update routing tables or to resolve updated addresses.